#pragma once
#include <array>
#include <random>
#include <cstdint>
#include <algorithm>

template<typename int_type, std::size_t length>
std::array<int_type, length> generateRandomArray(const int_type start, const int_type end)
{
    std::random_device rd;  // 将用于为随机数引擎获得种子
    std::mt19937 gen(rd()); // 以播种标准 mersenne_twister_engine
    std::uniform_int_distribution<int_type> dis(start, end);

    std::array<int_type, length> random_array;
    std::generate(random_array.begin(), random_array.end(), [&dis, &gen]{ return dis(gen); });

    return random_array;
}